草庐IT

ets 装饰器

全部标签

c# - 有没有像 c# 的 python 装饰器之类的东西?

我正在包装对API的调用,我的大部分方法都在第一行:if(!Gree.Authorizer.IsAuthorized()){return;}在python中,我会用类似@login_required的东西来装饰这些方法。您会用什么在c#中重构这种类型的逻辑? 最佳答案 您正在寻找称为面向方面编程的更通用编程方法的子集。C#似乎通过几个库来支持它,并且由于某些CLR功能,人们也可以推出自己的库。参见AspectOrientedProgrammingusing.NET其中涵盖了它的基本原理(我正在链接文章中谈论C#细节的部分,但如果您正

c# - 如何有效地测试 Action 是否装饰有属性(AuthorizeAttribute)?

我正在使用MVC,在我的OnActionExecuting()中,我需要确定即将执行的Action方法是否装饰有属性AuthorizeAttribute特别是。我不是在询问授权是否成功/失败,而是在询问该方法是否需要授权。对于非mvc人员filterContext.ActionDescriptor.ActionName是我正在寻找的方法名称。但是,它不是当前正在执行的方法;相反,它是一个将很快执行的方法。目前我有一个如下所示的代码块,但我对每个Action之前的循环不太满意。有更好的方法吗?System.Reflection.MethodInfo[]actionMethodInfo=t

c# - 在 C# 中生成类似于使用装饰器的代码的最佳方法?

假设我有一个不断重复的模式。像这样的东西:staticclassC{[DllImport("mydll")]privatestaticexternuintMyNativeCall1(Actiona);publicstaticuintMyWrapper1(Actiona){//DosomethingreturnMyNativeCall1(a);}[DllImport("mydll")]privatestaticexternuintMyNativeCall2(Actiona);publicstaticuintMyWrapper2(Actiona){//DosomethingreturnMy

c# - 强制类/方法的属性装饰

继我最近关于Large,ComplexObjectsasaWebServiceResult的问题之后.我一直在思考如何确保所有future的子类都可序列化为XML。现在,显然我可以实现IXmlSerializable接口(interface),然后将读取器/写入器插入其中,但我想避免这种情况,因为这意味着我需要在任何时候想要实例化读取器/写入器,并且99.99%的时间我将使用string所以我可能只写我自己的。但是,为了序列化为XML,我只是用Xml???属性(XmlRoot、XmlElement等),然后将其传递给XmlSerializer和StringWriter以获取字符串。这一

c# - 装饰器和 IDisposable

我有一个DbContext的子类publicclassMyContext:DbContext{}我有一个围绕MyContext的IUnitOfWork抽象,它实现了IDisposable以确保像MyContext这样的引用是在适当的时候处理掉publicinterfaceIUnitOfWork:IDisposable{}publicclassUnitOfWork:IUnitOfWork{privatereadonlyMyContext_context;publicUnitOfWork(){_context=newMyContext();}~UnitOfWork(){Dispose(fa

c# - Autofac - 注册多个装饰器

鉴于以下情况:publicinterfaceICommandHandler{voidHandle(TCommandcommand);}publicclassMoveCustomerCommand{}publicclassMoveCustomerCommandHandler:ICommandHandler{publicvoidHandle(MoveCustomerCommandcommand){Console.WriteLine("MoveCustomerCommandHandler");}}publicclassTransactionCommandHandlerDecorator:IC

javascript - 如何在 React Redux 应用程序中使用装饰器?

我正在使用ReactRedux创建简单的应用程序。我想使用装饰器在我的组件中注入(inject)一些方法。我在其他项目中看到类似的代码:importReact,{Component}from'react';import{connect}from'react-redux';@creatableexportdefaultclassBookDetailsextendsComponent{render(){console.log(this.props);if(!this.props.Activebook){returnpleaseselectbook}return({this.props.Ac

javascript - 组件卸载时如何取消订阅 redux store?如何装饰redux connect?

我将以下Prop(storeName)传递给我的组件:我想连接到一个动态名称的商店(this.props.reducerName)例如exportdefaultconnect(state=>({some:state[this.props.reducerName]}),{})(MyComponent);如何装饰reduxconnect,或者我必须做什么?我试图跳过redux连接并使用store.subscribecomponentDidMount(){store.subscribe(()=>{this.setState({some:store.getState([this.props.r

javascript - 如何摆脱 Angular aot 编译中装饰器不支持函数调用的问题?

我正在测试HighchartsAngular2xWrapper.起初,我使用AngularCLI(1.6.1)“ngserve”并使用Chrome分析性能没有问题。然后,我尝试使用提前编译来查看它对性能有何影响。所以,使用:ngserve--aot我收到以下错误:ERRORinErrorduringtemplatecompileof'AppModule'Functioncallsarenotsupportedindecoratorsbut'ChartModule'wascalled.现在,我知道aot为模块生成工厂代码并以某种方式将模板“转换”为VanillaJS,这里的事情变得有点棘

javascript - 在 Nest.js 中,如何在装饰器中获取服务实例?

在CustomDecorator中,如何访问Nestjs中定义的服务实例?exportconstCustomDecorator=():MethodDecorator=>{return(target:Object,propertyKey:string|symbol,descriptor:PropertyDescriptor)=>{//Here,ispossibiletoaccessaNest.jsservice(i.e.TestService)instance?returndescriptor;}}; 最佳答案 聚会迟到了,但由于我遇